package com.zhc.tools.demo.manager;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.zhc.tools.demo.dao.ImportOperateInfoDao;
import com.zhc.tools.demo.domain.ImportOperateInfo;
import com.zhc.tools.demo.domain.ImportOperateInfoQuery;
import com.zhc.tools.demo.web.context.PageUtil;

/**
 * ImportOperateInfoManager接口的实现类
 * 
 * @author zhc
 * 
 */
@Component
public class ImportOperateInfoManagerImpl extends BaseManager implements ImportOperateInfoManager {
	
    @Autowired
    private ImportOperateInfoDao importOperateInfoDao;

    /**
     * {@inheritDoc}
     */
    public boolean insert(final List<ImportOperateInfo> importOperateInfoList) {
        boolean resultFlag = false;
        if (null != importOperateInfoList && importOperateInfoList.size() > 0) {
            for (ImportOperateInfo importOperateInfo : importOperateInfoList) {
                resultFlag = importOperateInfoDao.insert(importOperateInfo);
                if (!resultFlag) {
                    throw new RuntimeException("批量新增表信息异常");
                }
            }
        }

        return resultFlag;
    }

    /**
     * {@inheritDoc}
     */
    public boolean insert(ImportOperateInfo importOperateInfo) {
        return importOperateInfoDao.insert(importOperateInfo);
    }

    /**
     * {@inheritDoc}
     */
    public boolean update(final ImportOperateInfo importOperateInfo) {
        return importOperateInfoDao.update(importOperateInfo);
    }

    /**
     * {@inheritDoc}
     */
    public List<ImportOperateInfo> queryImportOperateInfoList(ImportOperateInfoQuery queryBean) {
        return importOperateInfoDao.queryImportOperateInfoList(queryBean);
    }

    /**
     * {@inheritDoc}
     */
    public List<ImportOperateInfo> queryImportOperateInfoListWithPage(ImportOperateInfoQuery queryBean,
            PageUtil pageUtil) {
        if (null == queryBean) {
            queryBean = new ImportOperateInfoQuery();
        }

        // 查询总数
        int totalItem = queryImportOperateInfoCount(queryBean);

        if (pageUtil == null) {
            pageUtil = new PageUtil();
        }
        pageUtil.setTotalRow(totalItem);
        pageUtil.init();
        
        if (totalItem > 0) {
            queryBean.setPageIndex(pageUtil.getCurPage());
            queryBean.setPageSize(pageUtil.getPageSize());
            // 调用Dao翻页方法
            return importOperateInfoDao.queryImportOperateInfoListWithPage(queryBean);
        }
        return null;
    }

    /**
     * {@inheritDoc}
     */
    public int queryImportOperateInfoCount(ImportOperateInfoQuery queryBean) {
        return importOperateInfoDao.queryImportOperateInfoCount(queryBean);
    }

    /**
     * {@inheritDoc}
     */
    public boolean delete(ImportOperateInfo importOperateInfo) {
        return importOperateInfoDao.delete(importOperateInfo);
    }

    /**
     * {@inheritDoc}
     */
    public ImportOperateInfo getImportOperateInfoById(Long id) {
        return importOperateInfoDao.getImportOperateInfoById(id);
    }

    /**
     * {@inheritDoc}
     */
    public boolean delete(final ImportOperateInfo[] importOperateInfos) {
        boolean resultFlag = false;
        if (null != importOperateInfos && importOperateInfos.length > 0) {
            for (int i = 0; i < importOperateInfos.length; i++) {
                resultFlag = delete(importOperateInfos[i]);
                if (!resultFlag) {
                    throw new RuntimeException("批量删除表信息异常!");
                }
            }
        }

        return resultFlag;
    }

    /**
     * {@inheritDoc}
     */
    public boolean exist(ImportOperateInfo importOperateInfo) {
        return importOperateInfoDao.exist(importOperateInfo);
    }
}
